package com.handspring;

/**
 * @author: ztl
 * @date: 2024/04/21 22:34
 * @desc: 定义所有的bean都有的，公共的部分，
 *  beanDefinition引入的原因：
 *          我们想一下，假设我们现在spring容器已经好了，要从spring中容器获取了，那么我applicationContext.getBean("beanName"),
 *          获取的时候，是不是还得再判断一遍，我这个beanName是不是原型bean啊，是不是带不带component注解啊，，等等，
 *          这样的话，我们往spring容器里面塞的时候，要扫描、判断一遍。从spring中获取的时候，还得再扫描、判断一遍，那效率太低了。
 *          这就引入了BeanDefinition。就是bean的定义，是针对于全部的spring中的bean的总的定义。我们往spring容器中塞的时候，
 *          直接扫描、判断完了，然后告诉spring，你是多例(原型)、不带@Component注解，然后取的时候，就不用判断了。
 */

public class BeanDefinition {

    /**
     * class的类型
     */
    private Class type;

    /**
     * 单例还是多例
     */
    private String scope;

    /**
     * 是否是懒加载
     */
    private boolean isLazy;

    public Class getType() {
        return type;
    }

    public void setType(Class type) {
        this.type = type;
    }

    public String getScope() {
        return scope;
    }

    public void setScope(String scope) {
        this.scope = scope;
    }

    public boolean isLazy() {
        return isLazy;
    }

    public void setLazy(boolean lazy) {
        isLazy = lazy;
    }
}
